import store from '@/store'
import * as util from '../utils/util.js'
import Config from './config'

/**
 * 显示成功提示框
 */
export const showSuccess = (msg, callback) => {
	uni.showToast({
		title: msg,
		icon: 'success',
		// #ifndef MP-ALIPAY
		mask: true,
		// #endif
		duration: 1500,
		success() {
			callback && callback()
		}
	})
}

/**
 * 显示失败提示框
 */
export const showError = (msg, callback) => {
	uni.showModal({
		title: '友情提示',
		content: msg,
		showCancel: false,
		success(res) {
			callback && callback()
		}
	})
}

/**
 * 显示纯文字提示框
 */
export const showToast = (msg, duration = 1500, mask = true) => {
	uni.showToast({
		title: msg, // 提示的内容
		icon: 'none',
		// #ifndef MP-ALIPAY
		mask, // 是否显示透明蒙层，防止触摸穿透 (支付宝小程序不支持)
		// #endif
		duration // 提示的延迟时间，单位毫秒，默认：1500	
	})
}


/**
 * 跳转到指定页面url
 * 支持tabBar页面
 * @param {string}  url   页面路径
 * @param {object}  query 页面参数
 * @param {string}  modo  跳转类型(默认navigateTo)
 */
export const navTo = (url, query = {}, modo = 'navigateTo') => {
	if (!url || url.length == 0) {
		return false
	}
	// tabBar页面, 使用switchTab
	// if (util.inArray(url, getTabBarLinks())) {
	// 	uni.switchTab({
	// 		url: `/${url}`
	// 	})
	// 	return true
	// }
	// 生成query参数
	const queryStr = !util.isEmpty(query) ? '?' + util.urlEncode(query) : ''
	// // 普通页面, 使用navigateTo
	// modo === 'navigateTo' && uni.navigateTo({
	// 	url: `/${url}${queryStr}`
	// })
	// // 特殊指定, 使用redirectTo
	// modo === 'redirectTo' && uni.redirectTo({
	// 	url: `/${url}${queryStr}`
	// })
	link(`/${url}${queryStr}`)
	return true
}


/**
 * 获取当前页面数据
 * @param {object}
 */
export const getCurrentPage = () => {
	const pages = getCurrentPages()
	const pathInfo = pages[pages.length - 1].$page.fullPath.split('?')
	return {
		path: pathInfo[0].slice(1),
		query: util.urlDecode(pathInfo[1])
	}
}

/**
 * 验证是否已登录
 */
export const checkLogin = () => {
	console.log('store',store)
	return !!store.getters.userId
}

/**
 * 加载更多列表数据
 * @param {Object} resList 新列表数据
 * @param {Object} oldList 旧列表数据
 * @param {int} pageNo 当前页码
 */
export const getEmptyPaginateObj = () => {
	return util.cloneObj(paginate)
}

/**
 * 加载更多列表数据
 * @param {Object} resList 新列表数据
 * @param {Object} oldList 旧列表数据
 * @param {int} pageNo 当前页码
 */
export const getMoreListData = (resList, oldList, pageNo) => {
	// 如果是第一页需手动制空列表
	if (pageNo == 1) oldList.data = []
	// 合并新数据
	return oldList.data.concat(resList.data)
}


/**
 * scene解码
 * 用于解码微信小程序二维码参数,并返回对象
 */
export const sceneDecode = (str) => {
	if (str === undefined)
		return {}
	const data = {}
	const params = decodeURIComponent(str).split(',')
	for (const i in params) {
		const val = params[i].split(':');
		val.length > 0 && val[0] && (data[val[0]] = val[1] || null)
	}
	return data
}

/**
 * 获取二维码场景值(scene)
 */
export const getSceneData = query => {
	console.log(query);
	console.log(util);
	return util.default.hasOwnProperty(query, 'scene') ? sceneDecode(query.scene) : {}
}